Repository navigation
Add experimental flex-operator Helm chart - #422
Closed
Alex Huang (wenhug) wants to merge 3 commits into
Closed
Alex Huang (wenhug) wants to merge 3 commits into
Alex Huang (wenhug) wants to merge 3 commits into
Conversation
Package the Unbounded operator (v0.8.0) as a Helm chart so AKS can install and upgrade it as a managed cluster extension. The chart mirrors upstream deploy/unbounded-operator; make chart-check lints it and diffs the render against the pinned upstream manifests. Sites can optionally be applied by a post-install Job for --network-plugin none clusters. Co-Authored-By: Claude <noreply@anthropic.com>
Member
|
this helm chart should go to unbounded side, flex node repo should not create a new flex-operator component |
An operator installed by kubectl unbounded install (or another release) now fails the chart with a clear message instead of a Helm ownership error. Co-Authored-By: Claude <noreply@anthropic.com>
- Run kubectl directly: the kubectl image is distroless, so the shell script never started. - Create Sites with the same schema as kubectl unbounded site init. Networking isn't a Site component in v1alpha3; the old components.net field was rejected by the API server. - Document the upgrade procedure and align the example CIDRs with the getting-started guide. Co-Authored-By: Claude <noreply@anthropic.com>
Collaborator
Author
|
Agreed, thanks hbc (@bcho). Moved the chart to Azure/unbounded next to the operator manifests: Azure/unbounded#1056. It's generated to match the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds an experimental Helm chart,
charts/flex-operator, that packages theUnbounded operator (
unbounded-operatorv0.8.0, the version pinned in thegetting-started guide and the AKS RP Flex Node E2E). The goal is to let AKS
install, upgrade and remove the operator as a managed cluster extension instead
of customers running
kubectl unbounded installthemselves (Flex operatormanaged extension PRD).
What's in it
charts/flex-operator: ServiceAccount, ConfigMap, ClusterRole/Binding andDeployment mirroring upstream
deploy/unbounded-operator. Must be installedinto
unbounded-system.sites/sitePeeringvalues: a post-install/post-upgrade Jobapplies Site and SitePeering objects once the operator has established its
CRDs (same shape as the AKS RP E2E). Off by default.
hack/flex-operator/upstream-v0.8.0+compare_upstream.py, andmake chart-check: lints the chart and diffs its render against the upstreammanifests, so drift is caught when the pinned release changes.
Intended differences from upstream: Namespace comes from the release,
imagePullPolicy: IfNotPresent(pinned tag), config-hash computed from therendered ConfigMap.
Validation
make chart-check,make docs-check,make buildpass; GitHub CI green on the first push.helm install: operator Ready in ~15s andbootstraps 12 Unbounded CRDs; no Sites, cluster CNI untouched.
customer-hidden test extension type:
az k8s-extension create, configupdate (
operator.apiServerEndpoint, rolls the operator) and delete allsucceed.
kubectl unbounded install(tested live; the existing operator is left untouched).
--network-plugin noneAKS 1.36.5 cluster:helm installwithsites(cluster + flex-site) and a SitePeering: thehook Job applied them, the operator installed Unbounded-Net, Machina,
Gantry and token-refresher, and the system node went
Readyon sitecluster.scripts/bootstrap.sh(agent v0.2.0, MSI): nodeReadyon siteflex-site, pool typeFlexNodes.it by pod IP and by Service DNS; the flex pod reached the API server via the
service IP;
kubectl logsagainst the flex pod works.(RBAC synced from upstream). Operator and all components (Unbounded-Net,
Machina, Gantry, token-refresher) rolled to v0.18.0, both nodes stayed
Ready, and 120/120 cross-node requests over ~8 minutes succeeded.E2E found and fixed two chart bugs (second commit): the Sites Job used a shell
that the distroless kubectl image doesn't have, and it set
components.net,which the v1alpha3 Site schema rejects. Sites now match
kubectl unbounded site init.Open questions for reviewers
12 CRDs, any Sites and component workloads. Should the extension remove them,
or should AKS block disable while Flex pools/Sites exist (as the PRD suggests)?
to
kubectl unbounded site init/AKS RP?(validated upgrade path above)?
one registry prefix (MCR).
🤖 Generated with Claude Code